


/*题目描述：
* 现有n个火车站，用编号1-n表示，彼此之间的通车情况用“a，b”表示，如2，3表示由2到3的一条单程线路
* 随意给出车站序号x，y和最大途径中转站的个数，要求计算出所有x到y最多中转k次的所
* 有线路数量（同一站点不可重复经过）
*
* 输入：第一行车站数量n
*       第二行表示通车情况，用空格分隔，例如：1，2 2，3
*       第三行指定两个车站序号 x y
*       第四行为最大中转次数 k
*
* 输出：线路数量
*
输入
3
1,2 2,3 1,3
1 3
1
输出
2
 */

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;


public class Solution {

    private static int n; // n个站点
    private static int[][] graph; // 表示从i-》的单向连接
    private static int x;
    private static int y;
    private static int k;

    private static boolean[][] used;
    private static int depth;
    private static int res;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        sc.nextLine();
        String[] s = sc.nextLine().trim().split(" ");
        /*邻接矩阵解法*/
        graph = new int[n+1][n+1];
        for (String temp : s) {
            String[] s_temp = temp.trim().split(",");
            int i = Integer.parseInt(s_temp[0]);
            int j = Integer.parseInt(s_temp[1]);
            graph[i][j] = 1;
        }
        x = sc.nextInt();
        y = sc.nextInt();
        k = sc.nextInt();
        used = new boolean[n+1][n+1];
        depth = 0;
        res = 0;
        dfs(x);
        System.out.println(res);
    }

    public static void dfs(int station) {
        if (depth <= k+1 && station == y) res++;
        if (depth < k+1 && station != y) {
            for (int i = 1; i < graph[station].length; i++) {
                if(graph[station][i] == 1 && !used[station][i]) {
                    used[station][i] = true;
                    depth++;
                    dfs(i);
                    depth--;
                    used[station][i] = false;
                }
            }
        }
    }
}

